首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    基于arm64架构国产操作系统|Linux下的RTMP|RTSP低延时直播播放器开发探究

    技术实现 顺势而为,在发布arm64架构的国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK(官方)的直播播放SDK用一句比较流行的广告语叫遥遥领先,我们更是在前几年已经发布了 Linux X86_64架构的播放器,并得到了广泛的应用。 本次发布的可用于国产操作系统和Linux上的的RTMP|RTSP直播播放SDK, video输出基于X协议,audio输出采用PulseAudio和Alsa Lib实现。 nullptr == sdk_wrapper) return; sdk_wrapper->CaptureImageHandle(handle, result, file_name); } 总结 arm64 架构的国产操作系统|Linux下的RTMP、RTSP直播播放,延迟依然毫秒级,随着国产操作系统在传统行业的推进,越来越多的场景需要高稳定性高延迟低的RTMP|RTSP播放器,本文抛砖引玉,感兴趣的开发者可以跟我单独探讨

    50200编辑于 2024-05-19
  • 来自专栏醉梦轩

    iPad上使用UTM安装Linux arm64系统

    0x00 背景 以前研究过一次在iPad上安装Linux系统,当时的方案是:AltStore + UTM,由于没有硬件虚拟化,性能非常差,只能安装服务器版Linux,而且UTM由于签名问题需要每7天续签一次 打开Trollstore,选择右上角+号,选择Install IPA File,然后选择刚才拷贝的ipa文件 在弹出的窗口中点击Install,很快就会安装完成 0x05 安装Ubuntu 22.04 arm64 桌面版 现在Linux系统的arm生态已经很健全了,基本上常见的应用都有提供对应的arm版本。 将镜像ISO文件下载到设备中 打开UTM,点击创建一个新虚拟机,选择虚拟化(这种模式会开启硬件虚拟机) 然后选择Linux,添加刚才拷贝进来的iso镜像文件,后面是一些CPU、内存等硬件相关的参数配置 保存后启动虚拟机,开始进行安装,Ubuntu也支持Live方式使用,可以先体验一下 安装完成后进入系统,可以做一些个性化界面优化(访问虚拟机需要外接键盘和鼠标才能操作) 至此,一个便携式Linux系统已经安装完成

    7.1K10编辑于 2024-01-08
  • 来自专栏RTSP/RTMP直播相关

    Linux ARM64 上构建毫秒级延迟 RTSPRTMP 播放器:架构与实战

    本文基于大牛直播 SDK(SmartPlayerSDK)在 Linux ARM64 平台的 Demo 源码,结合实际的 C++ 封装与 X11 窗口管理代码,系统拆解如何在 Linux ARM64 环境下 ,实现一个支持多路并行、毫秒级延迟的 RTSP/RTMP 播放器。 一、整体架构:从 C 风格 SDK 到工程化播放器大牛直播 SDK 在 Linux 下的核心入口是一个纯 C 风格的结构体 SmartPlayerSDKAPI,里面是一组函数指针:Init/UnInit 工控板 多路渲染 资源紧张场景 七、ARM64 场景化调优建议7.1 无人机 / 云台 建议使用 RTSP over UDP 参数组合: SetBuffer(0) SetLowLatencyMode ARM64 多路播放器 Demo 展示了一条完整、可落地的行业级链路: SDK 层:跨 RTSP/RTMP 协议、解码、同步、OpenGL 渲染 句柄管理层:RAII + 事件分发 + 低延迟参数注入

    36010编辑于 2025-11-26
  • 来自专栏RTSP/RTMP直播相关

    ARM64国产Linux环境下 RTSPRTMP播放器开发实践

    因此,构建在国产操作系统与 ARM64 芯片上的 RTMP/RTSP 低延迟播放器技术,不仅是技术适配,更是保障国家数字底座安全可信的关键一环。 现实情况却是:难题说明国内常见业务协议 RTSP/RTMP 在 ARM64 适配度不均衡各厂硬件能力差异巨大国产 OS 图形栈 X11/Wayland 并存,兼容性挑战大渲染路径稳定性为核心难点专网设备数量庞大 因此,大牛直播SDK选择将 流媒体播放能力率先迁移至国产 OS + ARM64 体系,正是面对现实痛点做出的关键突破: 工程上最复杂 行业上最需要 落地上最有价值尤其是对 RTSP / RTMP 的深度优化 五、多路 RTSP/RTMP 播放器 Demo:架构与源码说明为了验证上述能力在国产 ARM64 平台上的稳定性,我们实现了一个 多实例低延迟播放器 Demo,支持: 多路流同时播放 自适应窗口布局 六、国产 ARM64 实测表现与工程部署建议我们在多款国产 ARM64 平台及主流国产 Linux 发行版环境中进行了功能与稳定性验证,整体结论如下——① 播放稳定性 多路播放可持续运行,无明显卡顿或黑屏情况

    30610编辑于 2025-12-03
  • 来自专栏RTSP/RTMP直播相关

    国产化操作系统(x86_64|aarch64)生态构建之RTSP播放器选型

    深度Linux(Deepin): 基于Linux内核,已具备相对完善的产品体系,并广泛应用于关键领域。深度Linux以其友好的用户界面和丰富的功能特性,赢得了众多用户的喜爱。 性能:确保播放器能够在x86_64架构和arm64架构的Linux系统上稳定运行,并提供流畅的播放体验。兼容性:检查播放器是否支持你需要播放的RTSP流格式和编码方式。 VLC具有跨平台特性,支持Linux、Windows、macOS等多个操作系统。优势:VLC具有广泛的解码器支持,可以播放大多数视频和音频格式,同时支持RTSP等流媒体协议。 注意:在arm64架构的Linux系统上,需要确保安装的是支持该架构的VLC版本。 大牛直播SDK的SmartPlayer大牛直播SDK始于2015年,是一个专注于传统行业直播领域的SDK,旗下SmartMediaKit系列提供了对RTSP流的支持,并且支持x86_64架构和arm64

    1.2K10编辑于 2024-09-06
  • 来自专栏人人都是极客

    Arm64 栈回溯

    AArch64栈的结构 Arm64有4种栈,分别是空增栈(Empty Ascendant Stack,EA)、空减栈(Empty Descendant Stack,ED)、满增栈(Full Ascendant 常用的是满减栈,Linux内核也使用满减栈。 下图是一个满减栈的示意图,高地址为栈顶,低地址为栈低,栈向低地址方向生长,如右边的箭头所示。栈指针SP指向栈底(栈低保存了数据)。 AArch64过程调用标准中寄存器的使用规则 下面是Arm64程序调用标准规定的通用寄存器的使用方法。

    1.1K11编辑于 2023-08-22
  • 来自专栏iOS底层原理

    ARM64下switch语句

    b.eq 0x104016218 ;判断w0是否相等于1,是跳转执行相应命令adrp x0,1 add x0,x0,#0xf7d,否执行下一句

    2.4K40发布于 2021-02-03
  • 来自专栏游戏安全攻防

    ARM64 撬开逆向大门

    为什么要学ARM64? android 5.0系统就开始引入Arm64-v8a,它用于支持全新的AArch64架构,这个架构也就是我们要学习的arm64汇编。 那么我们利用IDA(反汇编工具)进行静态逆向分析so文件、或者IDA动态调试so文件,都需要和arm64汇编代码打交道,因此对于学习掌握好ARM64汇编对阅读反汇编代码能达到事半功倍的效果。 ARM64的汇编指令集中,有一部分指令的执行时影响状态寄存器的,比如add、sub、or汇编指令等,他们大都是运算指令(进行逻辑或算数运算) ? ARM64汇编的函数有那些需要重点关注? 1.函数调用约定是什么约定? ARM64汇编代码: ? 3.3.2 函数中有九个参数的,需要用栈寄存器来传递参数 源代码: ? ARM64汇编代码: ? 4.函数中的堆栈怎么平衡?

    2.6K54发布于 2021-01-18
  • 来自专栏LINUX阅码场

    宋宝华: ARM64 Linux内核页表的块映射

    内核文档Documentation/arm64/memory.rst描述了ARM64 Linux内核空间的内存映射情况,应该是此方面最权威文档。 我们需要一个真实的调试手段来验证我们的想法,这个调试手段就是PTDUMP(Page Table Dump),相关的代码在ARM64内核的: arch/arm64/mm/ptdump.c和ptdump_debugfs.c 我用qemu启动了一个4GB内存的ARM64虚拟机,可以看到前1GB的虚拟地址空间大多数是PMD和PTE映射,后面的3GB,全是PUD映射: ? 牧春童鞋在“Linux阅码场”这里还有一些精彩的文章: 宋牧春:Linux设备树文件结构与解析深度分析(1) 宋牧春:Linux设备树文件结构与解析深度分析(2) 宋牧春:多图详解Linux内存分配器 slub 宋牧春:Linux内核内存corruption检查利器KASAN实现原理 后面我们期待牧春专门写一篇文章来深入描述他的patchset。

    4.2K10发布于 2021-01-12
  • 来自专栏linux驱动个人学习

    ARM64内核内存布局图

    ARM64架构处理器采用48位物理寻址机制,最大可以寻找到256TB的物理地址空间。对于目前的应用来说已经足够了,不需要扩展到64位的物理地址寻址。 Linux内核在大多数体系结构中都把两个地址空间划分为用户空间和内核空间。 0x0000_0000_0000_0000到0x0000_ffff_ffff_ffff 内核空间:0xffff_0000_0000_0000到0xffff_ffff_ffff_ffff 64位的Linux 内核已经没有高端内存的概念了,因为48位的寻址空间已经足够大了 在QEMU实验平台上,ARM64架构的LInux内核的内存分布图如下: ? 如图所示,ARM64架构处理器的Linux内核内存布局图。ARM64架构处理器的Linux内核内存布局如下: ?

    3K20发布于 2020-05-18
  • 来自专栏jeremy的技术点滴

    arm64硬件架构支持总结

    而国产硬软件一般也就是代指arm64硬件架构及在此基础上的linux定制发行版,最近一周刚好完成了一些支持arm64硬件架构的工作,这里总结一下。 一些常用的arm64软件源地址如下: centos的arm64 yum源地址是:https://mirrors.aliyun.com/centos-altarch/ ubuntu的arm64 apt源地址是 k8s支持arm64架构 其实k8s要支持arm64还算是比较简单,由于Go语言里进行跨平台交叉编译很简单,所以k8s核心的一些二进制文件及docker镜像均有arm64架构的,将正常部署的k8s集群中这些二进制文件都替换成 arm64架构的,k8s也就可以在arm64上正常运行了。 的就是arm64架构的二进制文件) docker: https://mirrors.aliyun.com/docker-ce/linux/(centos, ubuntu都有对应的docker arm64

    5.4K20发布于 2019-03-13
  • 来自专栏xcywt

    opencv的一个小例子

    \n"; std::string ipc_addr("rtsp://xxxxxxxxx"); // 也可以直接为0 表示打开摄像头 cv::VideoCapture cap 编译遇到了下列问题: 系统:Ubuntu 20.04    Opencv版本:4.2.0 CPU架构:ARM64  3588 dadao@ubuntu:~/Workspace/youngtest/opencvtest [Y/n] y Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports focal/main arm64 ocl-icd-libopencl1 arm64 Unpacking ocl-icd-libopencl1:arm64 (2.2.11-1ubuntu1) over (2.2.11-2ubuntu1) ... Setting up ocl-icd-libopencl1:arm64 (2.2.11-1ubuntu1) ...

    46660编辑于 2023-11-10
  • 来自专栏RTSP/RTMP直播相关

    Linux|麒麟操作系统实现多路RTMP|RTSP播放

    ​ 技术背景 无论是Windows平台还是Linux,多路播放诉求非常普遍,比如针对智慧工地、展馆、教育等宏观场景下的摄像头展示,关于RTSP或RTMP直播播放器开发需要注意的点,可参考之前博客,总的来说有以下一些点 低延迟:大多数RTSP的播放都面向直播场景,所以,如果延迟过大,比如监控行业,小偷都走了,客户端才看到,或者别人已经按过门铃几秒,主人才看到图像,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标 H.265的播放和录制:除了H.264,还需要支持H.265,目前市面上的RTSP H.265摄像头越来越多,支持H.265的RTSP播放器迫在眉睫,此外,单纯的播放H.265还不够,还需要可以能把H.265 代码实现 本文以大牛直播SDK(官方)的Linux平台为例,介绍下RTMP或RTSP流多路播放集成。 总结 多路RTMP或RTSP播放,涉及到性能和多路之间音视频同步、长时间播放稳定性等问题,Linux平台可参考的资料比较少,可选的方案比较少,感兴趣的可酌情参考。 ​

    1.9K80发布于 2021-07-26
  • 来自专栏iOS底层原理

    ARM64下的汇编循环

    100006250~100006260处分别是拉伸栈空间,分别给零寄存器,w0,x1入栈数据。

    1.7K10发布于 2021-02-03
  • 来自专栏python3

    python rtsp

    # -*- coding: utf-8 -*- """ A demo python code that .. 1) Connects to an IP cam with RTSP 2) Draws RTP by Sampsa Riikonen. """ import socket import re import bitstring # if you don't have this from your linux ***************************************** ip="192.168.1.74" # IP address of your cam port=1616 adr="rtsp **************************************************************************** dest="DESCRIBE "+adr+" RTSP .com/  https://github.com/odie5533/Python-RTSP

    2.2K20发布于 2020-01-06
  • 来自专栏Android逆向

    Radare静态分析so文件-ARM64

    在使用Radare2静态分析apk(2)末尾通过Radare2分析出一段ARM64汇编代码,这篇文通过分析这段汇编代码来来了解下ARM64汇编。 ARM寄存器 ARM64 有34个寄存器,包括31个通用寄存器、SP、PC、CPSR。 PC |64|程序计数器,俗称PC指针,总是指向即将要执行的下一条指令,在arm64中,软件是不能改写PC寄存器的。

    1.4K00发布于 2020-12-06
  • 来自专栏iOS底层原理

    ARM64下OC的汇编

    断点处可以看见,x0 objc_alloc_init调用方法,从x8取出,既看x8和x0寄存器。

    1.8K10发布于 2021-02-05
  • 来自专栏老欧说安卓

    使用国产直播服务器smart_rtmpd执行推流操作

    《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。 smart_rtpmd开源且跨平台,支持Windows、Linux(含Ubuntu、CentOS等)、FreeBSD、ARM64等操作系统。 推流地址rtsp://127.0.0.1:8554/live/stream。 /pullvideo rtsp://127.0.0.1:8554/live/stream 然后果真弹出一个SDL窗口,正在播放从RTSP服务拉取的视频画面如下图所示,说明smart_rtpmd正确实现了 RTSP协议的流媒体转发功能。

    70610编辑于 2025-10-11
  • 来自专栏RTSP服务器

    如何将旧手机改造成专业级 RTSP 监控摄像头:轻量级RTSP服务的完整工程方案

    鉴权(用户名/密码) 会话管理(可获取连接数) 多 RTSP 服务同时创建 跨平台一致(Android / iOS / Windows / Linux / 麒麟) 总结一句话: 大牛直播SDK ⑤ 跨平台统一 API相同的 RTSP Server 核心在以下平台完全一致: Android arm64 / armv7 / x86 / x86_64 iOS arm64 Windows Linux 支持的 CPU 架构:armv7、arm64、x86、x86_64。 rtsp serverStartRtspServer启动 RTSP 服务器停止 rtsp serverStopRtspServer停止 RTSP 服务器关闭 rtsp serverCloseRtspServer 支持多终端同时拉流(VLC / ffplay / SmartPlayer / NVR) 内置鉴权机制,确保局域网访问安全可控 跨平台播放能力(Android / iOS / Windows / Linux

    91420编辑于 2025-11-24
  • 来自专栏全栈程序员必看

    RTSP协议

    RTSP对流媒体提供诸如暂停、快进等控制,而它本身并不传输数据。RTSP的作用相当于流媒体服务器的远程控制。 2、RTSP与HTTP的区别与联系 联系:两者都用纯文本来发送消息,且RTSP协议语法也和HTTP类似。RTSP一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码。 区别:rstp有状态,不同的是RTSP的命令需要知道现在处于一个什么状态,也就是说RTSP的命令总是按照顺序来发送的,某个命令总在另外一个命令之前发送。RTSP不管处于什么状态都不会断掉连接。 RTSP版本 状态码 解释 CR LF 消息头 CR LF CR LF 消息体 CR LF 其中RTSP版本一般是RTSP/1.0,状态码是一个数值,200表示成功,解释是与状态码对应的文本解释,详细请见 交互流程 C表示rtsp客户端, S表示rtsp服务端。

    5.6K40编辑于 2022-09-06
领券